﻿#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
#include<math.h>

//int main()
//{
//	int i = 0;
//	for (i = 1; i <= 100; i++)
//	{
//		if (i % 2 == 1)
//		{
//			printf("%d ", i);
//		}
//	}
//	return 0;
//}
//
//int main()
//{
//	int i = 0;
//	for (i = 1; i <= 9; i++)
//	{
//		int j = 0;
//		for (j = 1; j <= 9; j++)
//		{
//			printf("%d*%d=%d\t", j, i, i * j);
//		}
//		printf("\n");
//	}
//	return 0;
//}
//
//int main()
//{
//	int i = 0;
//	for (i = 1; i <= 9; i++)
//	{
//		int a = 0;
//		for (a = 1; a < i; a++)
//		{
//			printf("\t");
//		}
//		int j = 1;
//		for (j = i; j <= 9; j++)
//		{
//			printf("%d*%d=%d\t", i, j, i * j);
//		}
//		printf("\n");
//	}
//	return 0;
//}
//
//#include<math.h>
//
//int main()
//{
//	int i = 1;
//	for (i = 2; i <= 200; i++)
//	{
//		int j = 2;
//		for (j = 2; j <= sqrt(i); j++)
//		{
//			if (i % j == 0)
//			{
//				break;
//			}
//		}
//		if (j > sqrt(i))
//		{
//			printf("%d ", i);
//		}
//	}
//	return 0;
//}
//
//int main()
//{
//	int a, b;
//	scanf("%d%d", &a, &b);
//	if (a > b)
//	{
//		int temp = a;
//		a = b;
//		b = temp;
//	}
//	int k = a;
//	while ( a % b != 0 )
//	{
//		a += k;
//	}
//	printf("最小公倍数是%d", a);
//	return 0;
//}
//
//int main()
//{
//	int a, b;
//	scanf("%d%d", &a, &b);
//	int k = (a > b ? b: a);
//	while (1)
//	{
//		if (a % k == 0 && b % k == 0)
//		{
//			break;
//		}
//		k--;
//	}
//	printf("%d", k);
//	return 0;
//}
//
//int main()
//{
//	int a, b;
//	scanf("%d%d", &a, &b);
//	if (a > b)
//	{
//		int k = a;
//		a = b;
//		b = k;
//	}
//	int tmp = b;
//	while (tmp % a != 0)
//	{
//		tmp += b;
//	}
//	printf("最大公约数是%d\n", tmp);
//	//最大公约数
//	int ret = 0;
//	while (ret = a % b)
//	{
//		a = b;
//		b = ret;
//	}
//	printf("最小公倍数是%d\n", b);
//}
//
//int main()
//{
//	int i = 1;
//	int flag = 1;
//	double sum = 0.0;
//	for (i = 1; i <= 100; i++)
//	{
//		sum += 1.0 * flag / i;
//		flag *= -1;
//	}
//	printf("%.6lf", sum);
//	return 0;
//}
//
//int main()
//{
//	int arr[10] = { 0 };
//	int i = 0;
//	for (i = 0; i < 10; i++)
//	{
//		scanf("%d", &arr[i]);
//	}
//	int max = arr[0];
//	int min = arr[0];
//	for (i = 1; i < 10; i++)
//	{
//		if (arr[i] > max)
//		{
//			max = arr[i];
//		}
//		if (arr[i] < min)
//		{
//			min = arr[i];
//		}
//	}
//	printf("%d", max - min);
//	return 0;
//}
//
//int main()
//{
//	int arr[10] = { 0 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		scanf("%d", &arr[i]);
//	}
//	for (i = 0; i < sz - 1; i++)
//	{
//		int j = 0;
//		for (j = 0; j < sz - 1 - i; j++)
//		{
//			if (arr[j] > arr[j + 1])
//			{
//				int tmp = arr[j];
//				arr[j] = arr[j + 1];
//				arr[j + 1] = tmp;
//			}
//		}
//	}
//	for (i = 0; i < sz; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//	return 0;
//}
//
//int main()
//{
//	int i = 0;
//	for (i = 1; i <= 10000; i++)
//	{
//		int ws = 0;
//		int tmp = i;
//		while (tmp)
//		{
//			ws++;
//			tmp /= 10;
//		}
//		tmp = i;
//		int sum = 0;
//		while (tmp)
//		{
//			sum += (int)pow(tmp % 10, ws);
//			tmp /= 10;
//		}
//		if (i == sum)
//		{
//			printf("%d ", i);
//		}
//	}
//	return 0;
//}

//int main()
//{
//	int i = 0;
//	for (i = 1; i <= 100000; i++)
//	{
//		//判断i是否是⾃幂数
//		//1. 计算i的位数n
//		int n = 1;
//		int tmp = i;
//		while (tmp / 10)
//		{
//			n++;
//			tmp /= 10;
//		}
//		//2. 计算i的每⼀位的n次⽅之和
//		tmp = i;
//		int sum = 0;
//		while (tmp)
//		{
//			sum += (int)pow(tmp % 10, n);
//			tmp /= 10;
//		}
//		//3. 输出
//		if (sum == i)
//			printf("%d ", i);
//	}
//	return 0;
//
//}

//int main()
//{/*
//	int i = 0;
//	int j = 0;
//	for (i = 1; i <= 7; i++)
//	{
//		for (j = 1; j <= 7 - i; j++)
//		{
//			printf(" ");
//		}
//		for (j = 1; j <= 2 * i - 1; j++)
//		{
//			printf("*");
//		}
//		printf("\n");
//	}
//	for (i = 1; i <= 6; i++)
//	{
//		for (j = 1; j <= i; j++)
//		{
//			printf(" ");
//		}
//		for (j = 1; j <= 2*(7-i)-1;j++)
//		{
//			printf("*");
//		}
//		printf("\n");
//	}
//	return 0;
//}*/
int main()
{
	int n = 0;
	//输⼊
	scanf("%d", &n);
	//打印
	//打印上半部分的n⾏
	int i = 0;
	for (i = 0; i < n; i++)
	{
		//打印空格
		int j = 0;
		for (j = 0; j < n - 1 - i; j++)
		{
			printf(" ");
		}
		for (j = 0; j < 2 * i + 1; j++)
		{
			printf("*");
		}
		printf("\n");
	}
	//打印下半部分的n-1⾏
	for (i = 0; i < n; i++)
	{
		//打印空格
		int j = 0;
		for (j = 0; j <= i; j++)
		{
			printf(" ");
		}
		//打印*
		for (j = 0; j < 2 * (n - 1 - i) - 1; j++)
		{
			printf("*");
		}
		printf("\n");
	}
	return 0;
}

